package com.ideaaedi.springcloud.jd.user.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ideaaedi.springcloud.jd.commonds.entity.user.po.SysTenantPO;
import com.ideaaedi.springcloud.jd.commonds.entity.user.vo.req.SysTenantListReqVO;
import com.ideaaedi.springcloud.jd.commonds.entity.user.vo.resp.SysTenantListRespVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.lang.Nullable;

/**
 * <p>
 * 系统-业务租户表 Mapper 接口
 * </p>
 *
 * @author <font size = "20" color = "#3CAA3C"><a href="https://gitee.com/JustryDeng">JustryDeng</a></font> <img src="https://gitee.com/JustryDeng/shared-files/raw/master/JustryDeng/avatar.jpg" />
 * @since 2021.0.5.B
 */
@Mapper
public interface SysTenantMapper extends BaseMapper<SysTenantPO> {
    
    /**
     * 查询业务租户列表
     *
     * @param page 分页信息
     * @param req 请求参数
     *
     * @return 租户列表
     */
    IPage<SysTenantListRespVO> list(IPage<?> page, @Param("req") SysTenantListReqVO req);
    
    /**
     * 全局查询租户所属业务租户的部门id
     * <p>
     * 我们通过tenant找其所属的bizTenant就可能为null，继而对应的deptId就可能为null
     *
     * @param tenant 租户值
     *
     * @return  业务租户对应的部门id
     */
    @Nullable
    @InterceptorIgnore(tenantLine = "true")
    Integer selectBizTenantDeptId(@Param("tenant") String tenant);
}
